<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>CSS - Flex 实现骰子</title>
    <style>
      * {
        padding: 0;
        margin: 0;
        box-sizing: border-box;
      }
      /* 以face结尾的class选择器 */
      [class$="face"] {
        margin: 16px;
        padding: 4px;

        background-color: #e7e7e7;
        width: 104px;
        height: 104px;
        object-fit: contain;

        box-shadow: inset 0 5px white, inset 0 -5px #bbb, inset 5px 0 #d7d7d7,
          inset -5px 0 #d7d7d7;

        border-radius: 10%;
      }
      .pip {
        display: block;
        width: 24px;
        height: 24px;
        border-radius: 50%;
        margin: 4px;

        background-color: #333;
        box-shadow: inset 0 3px #111, inset 0 -3px #555;
      }
      .first-face {
        display: flex;
        align-items: center;
        justify-content: center;
      }
      .second-face {
        display: flex;
        justify-content: space-between;
      }
      .second-face .pip:last-child {
        align-self: flex-end;
      }
      .third-face {
        display: flex;
        justify-content: space-between;
      }
      .third-face .pip:nth-child(2) {
        align-self: center;
      }
      .third-face .pip:nth-child(3) {
        align-self: end;
      }

      .fourth-face,
      .sixth-face {
        display: flex;
        justify-content: space-between;
      }
      .fifth-face {
        display: flex;
        justify-content: space-between;
      }
      .fifth-face .column:nth-of-type(2) {
        justify-content: center;
      }
      .column {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
      }

      .holy-grail {
        display: flex;
        flex-direction: column;
        height: 500px;
        background-color: #bbb;
      }

      .main-content {
        display: flex;
        flex: 1;
      }

      main {
        flex: 1;
        order: 2;
        background-color: pink;
      }

      nav {
        flex: 0 0 200px;
        order: 1;
        background-color: cornflowerblue;
      }

      aside {
        flex: 0 0 250px;
        order: 3;
        background-color: bisque;
      }
    </style>
  </head>
  <body>
    <div class="first-face">
      <span class="pip"></span>
    </div>
    <div class="second-face">
      <span class="pip"></span>
      <span class="pip"></span>
    </div>
    <div class="third-face">
      <span class="pip"></span>
      <span class="pip"></span>
      <span class="pip"></span>
    </div>
    <div class="fourth-face">
      <div class="column">
        <span class="pip"></span>
        <span class="pip"></span>
      </div>
      <div class="column">
        <span class="pip"></span>
        <span class="pip"></span>
      </div>
    </div>
    <div class="fifth-face">
      <div class="column">
        <span class="pip"></span>
        <span class="pip"></span>
      </div>
      <div class="column">
        <span class="pip"></span>
      </div>
      <div class="column">
        <span class="pip"></span>
        <span class="pip"></span>
      </div>
    </div>
    <div class="sixth-face">
      <div class="column">
        <span class="pip"></span>
        <span class="pip"></span>
        <span class="pip"></span>
      </div>
      <div class="column">
        <span class="pip"></span>
        <span class="pip"></span>
        <span class="pip"></span>
      </div>
    </div>

    <div class="holy-grail">
      <header>Header</header>
      <div class="main-content">
        <main>Main Content</main>
        <nav>Navigation</nav>
        <aside>Sidebar</aside>
      </div>
      <footer>Footer</footer>
    </div>
  </body>
</html>
